Remote access to the desktop environment of a computer is well known in the art and many facilities are available to enable this functionality. Current implementations of this functionality allow remote access to the desktop of a computer via another computer, typically having the same or similar display screen and user interfaces (i.e., mouse and keyboard) for purposes of running applications on the remotely-accessed computer or to provide technical support to the remotely-accessed computer.
It is also desirable to be able to remotely access a computer via a mobile device, for example an iPhone or iPad running the iOS operating system, and implementations are available to stream the desktop of a computer to a mobile device running iOS. Traditional remote desktop applications on mobile devices minor the display of a remote computer and provide simulation for mouse and keyboard events. This provides a challenge on smaller embedded devices where screen size is limited and these devices generally do not have external mouse or keyboards.
However, such implementations can be awkward due to the differences in the display and user interfaces of the devices. For example, when the entire desktop is streamed, windows typically appear much smaller on an iOS device because of the differences in the screen sizes between the remotely-accessed system and the iOS device, often rendering their contents unreadable. Additionally, mouse-like functions on an iOS device are typically provided via finger gestures made directly on the screen. As such, the context provided by a mouse with left and right buttons is missing and it is difficult to provide the same functionality as is available with a mouse having left and right buttons. For example, to move a window requires left-clicking the banner of the window, dragging the mouse to a new location, and releasing the left button. Likewise, clicking the right mouse button will typically bring up a contextual menu. Some applications on Apple's iOS platform use the finger gestures to simulate mouse actions, however, some mouse operations are difficult using the finger gestures available on an iOS device.
It would therefore be desirable to provide a facility allowing remote access to resources on remote systems which alleviate the deficiencies noted above, namely small displays on mobile devices and the difficulty of interacting with a remote system without the benefit of a mouse or keyboard.